home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
fish
/
726-750
/
733
/
cube
/
solve.h
< prev
next >
Wrap
Text File
|
1995-03-18
|
57KB
|
1,075 lines
/**********************************************************************
Human solvers should try to memorize as many from the following
five arrays as possible. `CornerMoves' cycles three corners and
`corners' switches two. Both have the same result, but it's easier to
use `corners'. The rest of the stuff in this file puts two pieces at
one time in the middle layer and `all' of them in one shot in the last
layer. There are 15552 configurations for the last layer. I don't have
nearly that number. They all exist, but I haven't found them all. Some
here are 18 moves. Shorter ones probably exist, but they are hard to
find.
***********************************************************************/
char *EdgeTwist[]={
"ar2u2ruarauar2ulfrafal", /* only 13 moves */
"lafualfabuarfaurafbau",
"2r2b2r2uralblar2u2r2b2ru"};
/* THE FOLLOWING 8 CASES MOVE AND TWIST THREE EDGE PIECES.
*
* B |\
* | \
* D | \ C
* | /
* | /
* A |/
*
* Edge D doesn't move. Corners never move.
*/
/* twist dir moves code # */
char *EdgeMoves[]= /*----------------------------------*/
{ /* a b c */
"2rufab2rafbu2r", /* o o o clock 9 021 0 */
"2raufab2rafbau2r", /* o o o anti 9 320 1 */
"araf2r2d2lab2l2dar", /* + o + clock 9 e21 2 */
"r2d2lb2l2d2rfr", /* o + + anti 9 32e 3 */
"fuafalabaraurbl", /* + + o clock 10 e26 4 */
"alabarurblfauaf", /* + o + anti 10 b20 5 */
"lfrauarafalabub", /* o + + clock 10 026 6 */
"abaublfruarafal", /* + + o anti 10 b2e 7 */
/************** switch two pairs of edges - various twists ***************/
/************** All of these leave corners intact. ***************/
"2f2bad2l2f2b2r2f2bd2f2b", /* sw red-green no tw 12 210 8 */
"rbuabau2rafaufur", /* " twist bl-Or 11 21e 9 */
"fbr2u2b2u2b2u2barafab", /* " twist four 12 76e 10 */
"rl2uaralafab2ufb", /* sw red-or no twist 10 301 11 */
"afaual2ulfur2uar", /* sw red-or tw red-bl 10 3e6 12 */
"lar2fralaularafralularafral", /* sw red-gn tw bl-gn 17 71e 13 */
"fab2rbafufabrbafaufabrbaf", /* sw red-gn tw rd-or 17 260 14 */
"ufauaruruafar2uafaufur", /* sw red-gn tw gn-or 15 710 15 */
"arauafuf2urfauarauruafau", /* sw red-gn tw rd-bl 15 26e 16 */
"lufauafal2ufraubuabaraf2u", /* sw red-or tw 4 16 be6 New 6/30/92*/
"blfauafualabarafaufur", /* cycle 3 tw 4 14 e76 New 7/1/92 */
"arauafufrblaufuafalab", /* as above, backwards 14 b7e 19 */
};
char *corners[]={ /* For slow solve. Switch two corners. */
/* These mess up edges. Use first. */
"alaulf2uafalul", /* diagonal twist rb + lb */
"alaulfuafalul", /* sw front twist rf + rb */
"araurbauabarur", /* front lf + rb */
"alaulfauafalul", /* back lf + rb */
"araurbuabarur", /* back lf + lb */
"afaufruarafuf", /* right lb + rb */
"abaublaualabub", /* right lb + rf */
"abaublualabub", /* left lf + rf */
"afaufrauarafuf" /* left lb + rf */
};
char *twistcorners[]={ /* Mess up edges. Use corners first then this
then edges. */
"araurauar2ur",
"ar2uruarur",
"afaufauafufauaf2uf", /*11 *459-231 */
"r2u2rau2rau2r2ur2u", /*10 476-102 */
"2uab2u2bu2bu2b2uab", /*10 *a79-231 */
};
/* Following are 18 cases of moving and twisting three corner pieces.
*
* d /|b
* / |
* / |
* / | Edges never move.
* a /____|c Corner d never moves.
*/
/* twist dir */
char *CornerMoves[]= /* a b c */
{ /* -------------- */
"2rdar2uradar2uar", /* + - 0 clock 9 #0 *043-123 */
"r2urdar2urad2r", /* + 0 - anti 9 1 *5b3-123 */
"arulaurualau", /* - - - clock 8 2 *8a3-123 */
"ulauarualaur", /* + + + anti 8 3 *7b3-123 */
"af2uafadf2uafd2f", /* 0 - + clock 9 4 *b13-123 */
"2fadf2uafdf2uf", /* + - 0 anti 9 5 *2b3-123 */
"rbarfrabaraf", /* - + 0 clock 8 6 *0a3-123 */
"frbarafrabar", /* - o + anti 8 7 *783-123 */
"f2d2bd2fad2bd2fdaf", /* + + + clock 11 8 *b43-123 */
"fad2fad2bd2fad2b2daf", /* - - - anti 11 9 *583-123 */
"arafalfraflf", /* o + - clock 8 10 *813-123 */
"afalfaraflfr", /* - + o anti 8 11 *283-123 */
"2b2lb2rab2lb2rb", /* - o + clock 9 12 *ba3-123 */
"ab2rab2lb2rab2l2b", /* o - + anti 9 13 *703-123 */
"l2fl2bal2fl2b2l", /* + o - clock 9 14 *843-123 */
"2l2bal2fl2bal2fal", /* o + - anti 9 15 *503-123 */
"aflaf2rfalaf2r2f", /* o o o clock 9 16 *013-123 */
"2f2rflaf2rfalf" /* o o o anti 9 17 *203-123 */
};
/***************************************************************************
End of what might be useful to human solvers.
Look at bottom of file for explanation of codes.
***************************************************************************/
char *topedges[24]={
"2rad2f","","2ld2f","2b2d2f","auru","afauru","ualau","fauru","lf",
"f","alfl","2lf2l","auaru","bulau","ulau","adrafar","rafar","af",
"araf","2ub2u","ad2f","2d2f","d2f","2f"
}; /* average 10.16 for all four */
char *topcorns[]={
"abadbfdaf","","ldalaradr","bf2dabaf","f2dafar2dr","fdaf","daradr",
"afad2f2daf","al2dlaradr","lardral","ardr","f2daf","fadaf","abfadbaf",
"bar2drab","ar2dr","dar2dr","aradr","fadafaradr","rd2r2dr","ardrf2daf",
"f2dafaradr","fdafaradr","ar2drfdaf"}; /* average 18.5 for all four */
char *middle[]={
"r2uar2uafauf", "b2ldfad2lab", "b2ldafad2lab", "f2ul2fal2uaf",
"2r2u2r2uarf2rafauaraf2uf","","afarafruf","ab2rauru2rb","l2fu2fau2fal",
"2f2u2f2u2f", "", "2bauad2rdu2b","arauabrbr", "afufurauar",
"2badbuabard2b", "", "", "", "f2ulafal2uaf","2r2u2r2u2r" };
char *(quickmiddle[16][16])= /* Puts two pieces at a time in middle layer.*/
{{
"", /*0-0 */
"aur2uaraualaf2ufl", /*0-1 10 */
"ruaralaf2ufl", /*0-2 8 */
"al2daf2uf2dl", /*0-3 7 */
"2ualauafuf2l2fal2f", /*0-4 10 */
"farafadafdr", /*0-5 7 */
"ar2bad2fd2br", /*0-6 7 */
"2l2f2ual2u2f2l", /*0-7 7 */
"2u2b2dl2d2b2ur", /*0-8 8 */
"2ub2dafadladab", /*0-9 8 */
"aurfadalauafld", /*0-10 9 */
"rfuafaraualaul", /*0-11 9 */
"u2lualdaufad2l", /*0-12 9 */
"l2ub2lab2ual", /*0-13 7 one */
"", /*0-14 */
"al2daf2r2dab2ual",}, /*0-15 8 subtotal 114*/
{
"aual2daf2uf2dl", /*1-0 8 */
"", /*1-1 */
"2ur2uaraualaf2ufl", /*1-2 10 */
"auruaralaf2ufl", /*1-3 9 */
"ualauafuf2l2fal2f", /*1-4 10 */
"aufarafadafdr", /*1-5 8 */
"", /*1-6 */
"l2bd2fad2bal", /*1-7 7 */
"u2b2dl2d2b2ur", /*1-8 8 */
"ub2dafadladab", /*1-9 8 */
"frafadalulafd", /*1-10 9 */
"u2fl2faral2fr2f", /*1-11 9 */
"2lualdaufad2l", /*1-12 8 */
"f2uaf2ualaul", /*1-13 7 one */
"urauaradaluld", /*1-14 9 */
"aual2daf2r2dab2ual",}, /*1-15 9 sub119 */
{
"ufadalfauafld", /*2-0 9 */
"drafaufaradf", /*2-1 8 */
"", /*2-2 */
"ur2uaraualaf2ufl", /*2-3 10 */
"alauafuf2l2fal2f", /*2-4 9 */
"2ufarafadafdr", /*2-5 8 */
"rauaradaluld", /*2-6 8 */
"", /*2-7 */
"2b2dl2d2b2ur", /*2-8 7 */
"b2dafadladab", /*2-9 7 */
"urfadalauafld", /*2-10 9 */
"ruaradalauld", /*2-11 8 */
"2lulaudafad2l", /*2-12 8 */
"r2bdlad2bar", /*2-13 7 one */
"2l2f2ul2u2f2l", /*2-14 7 */
"aflafalaufd2rad",}, /*2-15 9 sub 114 */
{
"r2uaraualaf2ufl", /*3-0 9 */
"fadalfauafld", /*3-1 8 */
"ual2daf2uf2dl", /*3-2 8 */
"", /*3-3 */
"aualauafuf2l2fal2f", /*3-4 10 */
"al2dafauf2dl", /*3-5 7 */
"d2ldrau2far2dl", /*3-6 9 */
"aurauaradaluld", /*3-7 9 */
"au2b2dl2d2b2ur", /*3-8 8 */
"aub2dafadladab", /*3-9 8 */
"rfadalauafld", /*3-10 8 */
"", /*3-11 */
"laualb2df2dab", /*3-12 8 */
"r2bdalad2bar", /*3-13 7 one */
"adalauldruar", /*3-14 8 */
"ual2daf2r2dab2ual",}, /*3-15 9 sub 116*/
{
"aufral2uarlf", /*4-0 8 */
"2ufral2uarlf", /*4-1 8 */
"ufalr2ularf", /*4-2 8 */
"fral2uarlf", /*4-3 7 */
"", /*4-4 */
"fld2fadafalau2f", /*4-5 9 */
"auar2u2b2dal2d2b", /*4-6 8 */
"2uar2u2b2dal2d2b", /*4-7 8 */
"2f2u2f2u2f", /*4-8 5 */
"2ldau2fad", /*4-9 5 */
"ful2fdradalaf", /*4-10 9 */
"uar2u2b2dal2d2b", /*4-11 8 */
"al2ualaualdfaufad", /*4-12 10 */
"", /*4-13 */
"ar2u2b2dal2d2b", /*4-14 7 */
"2fdau2rad",}, /*4-15 5 sub 105*/
{""}, /* no 5s */
{
"af2uabarafrbauf", /*6-0 9 */
"", /*6-1 */
"bl2bdafdr2db", /*6-2 9 */
"2f2uaf2u2f", /*6-3 5 */
"afauarau2fufrf", /*6-4 9 */
"fulafalaf", /*6-5 6 */
"", /*6-6 */
"bdflafalafadab", /*6-7 9 */
"2uafalr2ularaf", /*6-8 8 */
"faraf2dal2dr", /*6-9 7 */
"flafdradalaf", /*6-10 8 */
"adafdrafufar", /*6-11 8 */
"af2r2dab2daruar", /*6-12 8 */
"l2ubalab2ual", /*6-13 7 one */
"2ur2df2uaf2dar", /*6-14 8 */
"2f2ufud2rad",}, /*6-15 7 sub 106*/
{
"u2f2uf2u2f", /*7-0 6 */
"f2ublfalabuaf", /*7-1 9 */
"", /*7-2 */
"fauafudaf2ufad", /*7-3 9 */
"auafauarau2fufrf", /*7-4 10 */
"aufulafalaf", /*7-5 7 */
"ur2df2uaf2dar", /*7-6 8 */
"", /*7-7 */
"uafalr2ularaf", /*7-8 8 */
"aufaraf2dal2dr", /*7-9 8 */
"r2fabrbafauafar", /*7-10 9 */
"fuarlfalr2uaf", /*7-11 9 */
"auaf2r2dab2daruar", /*7-12 9 */
"ar2faufu2fr", /*7-13 7 one*/
"auadafdrafufar", /*7-14 9 */
"au2f2ufud2rad",}, /*7-15 8 sub 116 */
{
"lubd2falafadab", /*8-0 9 */
"fulu2fauafalaf", /*8-1 9 */
"ufrf2uafauarau2f", /*8-2 10 */
"2ufulu2fauafalaf", /*8-3 10 */
"alfaularfadlafdralaf", /*8-4 13 twist two*/
"", /*8-5 */
"aurufauaf2r2fr2f", /*8-6 10 */
"2urufauaf2r2fr2f", /*8-7 10 */
"", /*8-8 */
"ru2radafadal2dr", /*8-9 9 */
"abadafar2dablau2l2dafd", /*8-10 12 messes all four. */
"urufauaf2r2fr2f", /*8-11 10 */
"aradalaflulaudrf", /*8-12 11 */
"fauf2ul2fal2u2f", /*8-13 9twist one*/
"rufauaf2r2fr2f", /*8-14 9 */
"2fauruarafd2rad",}, /*8-15 9 sub 140 */
{
"ufadald2uarfr", /*9-0 9 */
"fadald2uarfr", /*9-1 8 */
"aufadald2uarfr", /*9-2 9 */
"2ufadald2uarfr", /*9-3 9 */
"bdfl2dbaru2r2dfad", /*9-4 12 messes all four. no problem? */
"ldlafaluadal", /*9-5 8 better than 64 */
"2ubdabal2badbrb", /*9-6 10 */
"lubd2fadalabal", /*9-7 9 */
"afauar2fadaldrf", /*9-8 9 */
"", /*9-9 */
"rfadafalafdf", /*9-10 8 */
"bdabal2badbrb", /*9-11 9 */
"", /*9-12 */
"alafalful", /*9-13 6 one */
"l2ulaudaf2uafad", /*9-14 9 */
"rbraudabalabad",}, /*9-15 9 sub 124 */
{
"2uldafdr2dal", /*10-0 8 */
"aflf2dr2dal", /*10-1 7 */
"ldafdr2dal", /*10-2 7 */
"auldafdr2dal", /*10-3 8 */
"alau2ldfdr2dal", /*10-4 9 */
"afdrau2dbalabd", /*10-5 9 */
"arfarafadfu2fd", /*10-6 9 */
"brdf2uafadarab", /*10-7 9 */
"2ruad2fd", /*10-8 5 */
"2f2baud2r2lad", /*10-9 7 */
"", /*10-10 */
"urau2rdau2bdal2d", /*10-11 10 */
"rdbadrd2uabd2l2d", /*10-12 11 */
"2rauad2fdu2r", /*10-13 7 one */
"ab2dfdardb", /*10-14 7 */
"",}, /*10-15 sub 113*/
{
"dafuf2uadfauaf", /*11-0 9 */
"2b2df2d2b", /*11-1 5 */
"bau2fuab2ufu2f", /*11-2 9 */
"", /*11-3 */
"2uafauarau2fufrf", /*11-4 10 */
"2ufulafalaf", /*11-5 7 */
"2uadafdrafufar", /*11-6 9 */
"r2df2uaf2dar", /*11-7 7 */
"afalr2ularaf", /*11-8 7 */
"2ufaraf2dal2dr", /*11-9 8 */
"fl2fdradal2uaf", /*11-10 9 */
"", /*11-11 */
"2uaf2r2dab2daruar", /*11-12 9 */
"f2ur2uar2uaf", /*11-13 7 one */
"flar2frafal2uaf", /*11-14 9 */
"b2d2r2uf2d2l",}, /*11-15 7 sub 112 */
{
"u2f2uafauad2ld", /*12-0 8 */
"2f2uafauad2ld", /*12-1 7 */
"au2f2uafauad2ld", /*12-2 8 */
"2f2ufauad2ld", /*12-3 7 */
"2fualaulfad2ld", /*12-4 9 */
"afar2lafralualf", /*12-5 9 */
"ur2df2l2db2ur", /*12-6 9 */
"r2df2l2db2ur", /*12-7 8 */
"2fuad2ld", /*12-8 5 */
"", /*12-9 */
"frfadualafald", /*12-10 9 */
"aur2df2l2db2ur", /*12-11 9 */
"", /*12-12 */
"2l2u2l2u2l", /*12-13 5 one */
"2ur2df2l2db2ur", /*12-14 9 */
"2l2d2u2r2d2u",}, /*12-15 6 sub 108 */
{
"uflfalauaf", /*13-0 7 */
"flfalauaf", /*13-1 6 usually one*/
"auflfalauaf", /*13-2 7 */
"2uflfalauaf", /*13-3 7 */
"", /*13-4 */
"ldarad2falafdrad", /*13-5 10 */
"2ur2dfuaf2dar", /*13-6 9 */
"flafalafalul", /*13-7 8 */
"2fulfd2fadalaf", /*13-8 9 */
"bau2dafaduladab", /*13-9 9 */
"fdaufrafadaf", /*13-10 8 */
"r2dfuaf2dar", /*13-11 7 */
"2fadlaudafu2f", /*13-12 8 */
"", /*13-13 */
"ruarafarafrf", /*13-14 8 */
"fl2rfalrauraf",}, /*13-15 9 sub 112*/
{
"", /*14-0 */
"audafuf2uadfauaf", /*14-1 10 */
"u2f2uaf2u2f", /*14-2 6 */
"fuafd2uafaufad", /*14-3 9 */
"uafauarau2fufrf", /*14-4 10 */
"ufulafalaf", /*14-5 7 */
"2ufuarlfalr2uaf", /*14-7 10 */
"uadafdrafufar", /*14-7 9 */
"auafalr2ularaf", /*14-8 8 */
"f2lafalualaf", /*14-9 7 */
"2radfdauaru2r", /*14-10 8 */
"aur2df2uaf2dar", /*14-11 8 */
"uaf2r2dab2daruar", /*14-12 9 */
"alulufauaf", /*14-13 7 one*/
"", /*14-14 */
"u2f2ufud2rad",}, /*14-15 8 sub 116 */
{
"uf2l2db2dlaul", /*15-0 9 */
"f2l2db2dlaul", /*15-1 8 */
"auf2l2db2dlaul", /*15-2 9 */
"2uf2l2db2dlaul", /*15-3 9 */
"ldrfarauaruadalaf", /*15-4 11 */
"2fdaruadfau2f", /*15-5 8 */
"2rauraduafd2r", /*15-6 8 */
"au2rauraduafd2r", /*15-7 9 */
"baub2dl2d2br", /*15-8 8 */
"aladabdalad2ubad2r2d", /*15-9 11 */
"", /*15-10 */
"arurab2daf2db", /*15-11 8 */
"2ldrfdauarab2du2l", /*15-12 11 */
"2fdarafufad2f", /*15-13 8 one*/
"auarurab2daf2db", /*15-14 9 */
"",} /*15-15 sub126 total 1741/210=8.3 average*/
};
/****** End of quick middle. Beginning of third and last layer ***********/
char *fast[]={ /* in pairs 2nd reverse */
"r2urdal2blad2r", /* 9 *5b3-320-0 0 */
"2rdal2bladar2uar", /* 9 *043-021-0 1 */
"abaububalabl", /* 8 *0a3-1e7-5 2 */
"alblabauabub", /* 8 *783-1b0-c 3 */
"fubrabaubarabaf", /* 10 *283-e26-3 4 */
"fbrabubarabauaf", /* 10 *813-b20-a 5 */
"lualaualblab", /* 8 *283-2b6-a 6 */
"balablulaual", /* 8 *813-b17-c 7 */
"arauafuafl2frafalf2u", /* 12 *2b3-3e1-5 8 */
"lufauaf2labarblabrb", /* 13 *0a6-063-6 9 */
"2radr2uardr2urab2ubuabub", /* 16 *016-320-0 10 */
"abaubauab2ubar2uaradr2uard2r", /* 16 *289-021-0 11 */
"2ufb2uafauf2uabuaf", /* 11 *203-203-0 12 */
"faub2uafuf2uabaf2u", /* 11 *013-013-0 13 */
"al2u2lualaual2ublab", /* 11 *283-17b-c 14 */
"rabarbubauabal2ulualul", /* 15 *2b6-12b-9 15 */
"arur2uaraluraulu", /* 11 *2b6-320-0 16 */
"abub2uabafubaufau", /* 11 *019-021-0 17 */
"alurauluarafubaufuab", /* 15 *5b9-301-0 18 */
"al2ulualu2lauarualauru", /* 14 *8a9-130-0 19 */
"bauafuabaufraualuaraul", /* 15 *b46-301-0 20 */
"auarulauru2laulaual2ul", /* 14 *786-102-0 21 */
"al2bal2fl2bal2f2l2u", /* 10 *843-301-0 22 */
"2u2l2fl2bal2fl2bl", /* 10 *503-301-0 23 fast*/
"ur2urdar2urad2rbauafuabauf", /* 17 *7b6-123-0 24 */
"afubaufuab2rdar2uradar2uarau", /* 17 *ba9-123-0 25 */
"alurauluar2fdaf2ufadaf2uafu", /* 17 *5b6-301-0 26 */
"auf2ufdaf2ufad2fraualuaraul", /* 17 *849-301-0 27 */
"alaulaual2ulbuabauabrbar", /* 15 *019-12b-9 28 */
"abaububalablabarfaraf2rb2u", /* 16 *846-b67-f 29 */
"2uabarfaraf2rblualaualblab", /* 16 *2b6-026-a 30 */
"araflafal2frbuabauabrbar", /* 15 *019-731-5 31 */
"auraualuarulualul", /* 12 *789-312-0 32 */
"alaulaualaurauluaru", /* 12 *ba6-230-0 33 */
"abaubauabaufaubuafau", /* 12 *589-021-0 34 */
"ufauabuafubuabub", /* 12 *846-320-0 35 */
"abrbar2uar2urb2uab2uabrbar2u", /* 17 *7b3-76e-f 36 */
"2urabarb2ub2uabar2ur2urabarb", /* 17 *8a3-76e-f 37 */
"al2ul2ulafalfal2ul2ulafalf", /* 16 *ba6-703-6 38 */
"aflfal2ual2ulaflfal2ual2ul", /* 16 *789-e63-3 39 */
"ab2ub2ubalablab2ub2ubalabl2u", /* 17 *589-107-c 40 */
"2ualblab2uab2ubalblab2uab2ub", /* 17 *846-1be-9 41 */
"lauarualaurabauarurbu", /* 14 *043-2e3-3 42 */
"b2uab2uabrbarbalabl2ul2ual2u", /* 17 *5b3-703-6 43 */
"uarfraf2uafaubaufuab", /* 13 *5b6-e21-9 44 */
"bauafuabuf2ufarafrau", /* 13 *849-32e-3 45 */
"auaflfal2ualaurauluar", /* 13 *ba9-7b1-c 46 fast*/
"raualuarul2ulafalfu", /* 13 *7b6-367-6 47 */
"afaualulflafalf2uf2uaf", /* 14 *503-62b-a 48 */
"f2uaf2uaflfalafalauluf", /* 14 *843-62b-a 49 */
"arauafufrfarafr2ur2uar2u", /* 15 *ba3-3e1-5 50 */
"2ur2uar2uarfrafarafaufur", /* 15 *703-3e1-5 51 */
"alauabub2l2far2falfraf", /* 13 *583-370-6 52 */
"rabarbubauabal2brbarbl", /* 15 *7b9-1b0-c 53 */
"rubauabarabrbar2uar2ur", /* 14 *ba3-173-5 54 */
"ar2ur2urabarbrbuabauar", /* 14 *703-173-5 55 */
"furauarafarfraf2uaf2uf2u", /* 15 *503-b06-a 56 */
"2uaf2uf2ufarafrfruarauaf", /* 15 *843-b06-a 57 */
"bulaual2b2rf2rbarafr", /* 13 *b43-e1b-9 58 */
"arfrab2raf2r2blualauab", /* 13 *583-20b-a 59 */
"lufauafalar2fl2frafalf2u", /* 15 *2b3-362-3 60 */
"2uaflfar2falfaufur", /* 12 *b13-3e1-5 61 */
"abauarur2b2uab2uabrbar2u", /* 14 *043-63e-3 62 */
"2urabarb2ub2u2baraurub", /* 14 *5b3-602-a 63 */
"2urubauabaraf2uf2ufarafr", /* 15 *ba9-173-5 64 */
"arfraf2uaf2ufrbuabauar2u", /* 15 *7b6-173-5 65 */
"bulaualabar2ur2urabarb", /* 14 *5b6-b06-a 66 */
"abrbar2uar2urblualauab", /* 14 *849-b06-a 67 */
"2uafaualulfr2uar2uarfraf", /* 15 *5b6-62b-a 68 */
"farafr2ur2uarafalauluf2u", /* 15 *849-62b-a 69 fast*/
"alauabublf2uaf2uaflfal", /* 14 *ba9-3e1-5 70 */
"lafalf2uf2uafalabaubul", /* 14 *7b6-3e1-5 71 */
"fuafauaflf2laulaual2ul", /* 14 *0a6-71e-5 72 */
"abrbar2uar2urfruarauaf", /* 14 *0a3-0b2-a 73 */
"2uab2rfrafrbalblabauabub", /* 16 *589-7b6-f 74 */
"lafalf2uf2uafarafaufur", /* 14 *283-e37-5 75 */
"furauaraflafalf2uf2uaf", /* 14 *7b9-607-6 76 */
"f2uaf2uaflfalfruarauaf", /* 14 *0a6-6b0-a 77 */
"2ulufauafalbalabl2ul2ual", /* 15 *049-2e3-3 78 */
"l2ual2ualblablfuafaual2u", /* 15 *586-e13-5 79 */
"bulaualablafalf2uf2uaf", /* 14 *503-736-6 80 */
"f2uaf2uaflfalblualauab", /* 14 *843-b62-a 81 */
"lufauafalfarafr2ur2uar2u", /* 15 *ba3-362-3 82 */
"2ur2uar2uarfraflfuafaual", /* 15 *703-731-5 83 */
"rabarbubaulualaulualauab2u", /* 17 *7b3-0b7-c 84 */
"lafalf2uf2uaflfuafaual", /* 14 *283-1e7-5 85 */
"furauarafl2ual2ualblab2u", /* 15 *5b6-b2e-9 86 */
"2ubalabl2ul2ualfruarauaf", /* 15 *849-026-a 87 */
"rubauabarf2uaf2uaflfal", /* 14 *ba9-071-c 88 */
"lafalf2uf2uafrbuabauar", /* 14 *7b6-e73-5 89 */
"bulau2labl2ul2ual", /* 11 *b46-b06-a 90 */
"l2ual2ualb2lualauab", /* 11 *5b9-b06-a 91 */
"rubau2barb2ub2uab2u", /* 12 *786-173-5 92 fast*/
"2ub2uab2uabr2buabauar", /* 12 *8a9-173-5 93 */
"2ubulaualulaualuabauabrbar", /* 17 *8a3-0b7-c 94 */
"l2ual2ualblabfruarauaf", /* 14 *283-0b2-a 95 */
"rbuabauarafaufruarafufau", /* 16 *0a3-21e-9 96 */
"abaububalab2lfarfr2fal2u", /* 15 *ba9-7eb-f 97 */
"2b2lbrab2lbarbr2urdar2urad2r2u", /* 19 *016-301-0 98 */
"2ul2farafraf2lblabauabub", /* 15 *7b6-e6b-f 99 */
};
char *mirr[]={
"af2uafadb2labd2f", /* 9 *b13-013-0 0 */
"2fadb2labdf2uf", /* 9 *2b3-203-0 1 */
"abauarubalabrbl", /* 10 *283-b2e-9 2 */
"alabarblabr2blualauab", /* 13 *ba9-2b6-a 3 */
"araururabarbaraflafal2fr", /* 15 *789-7b6-f 4 */
"aralaflaualflur", /* 10 *783-e13-5 5 */
"arual2urauar2ulr2u", /* 11 *203-320-0 6 */
"2uaral2uruar2ulaur", /* 11 *013-021-0 7 */
"b2u2baubub2ualabl", /* 11 *0a3-17b-c 8 */
"bulaual2barbalabrbl", /* 13 *7b6-b17-c 9 */
"aufauabuafau2blualauab", /* 13 *016-06b-a 10 */
"afaualulaf2laf2rf2laf2raf", /* 14 *013-736-6 11 */
"fauaf2ufbauafuabau", /* 11 *019-013-0 12 */
"ubaufuabaf2ufuaf", /* 11 *2b6-203-0 13 */
"2urad2rad2ld2rad2l2darabaraurub", /* 18 *ba6-20b-a 14 */
"2uafd2fd2bad2fd2b2dflfuafaual", /* 18 *589-e71-5 15 */
"raualuaraulafalbalab2lfu", /* 15 *b13-1be-9 16 */
"aualurauluarfurauaraf", /* 14 *2b3-e26-3 17 */
"arauafufrabrbar2uar2ur", /* 14 *816-2b1-9 18 */
"ar2ur2urabarbarafaufur", /* 14 *2b9-317-5 19 mirr*/
"bulaualabaflfalaualul", /* 14 *816-673-6 20 */
"alaululafalfblualauab", /* 14 *2b9-673-6 21 */
"ar2flfalfrabrbarauarur", /* 15 *ba6-b67-f 22 */
"alaululafal2fruarauaf", /* 13 *783-760-6 23 */
"2ulufauafalarfrafauafuf", /* 14 *286-b01-c 24 */
"afaufufarafrlfuafaual2u", /* 14 *b19-3e6-3 25 */
"rubauabarfarafrurauar", /* 14 *843-3e6-3 26 */
"ruarauarfrafrbuabauar", /* 14 *503-b01-c 27 */
"2ubulaualabrabarbubauab", /* 15 *703-673-6 28 */
"buabauabrbarblualauab2u", /* 15 *ba3-673-6 29 */
"f2uaf2uaflfalfurauaraf", /* 14 *843-eb2-9 30 */
"2uaraururabarbarafaufur", /* 15 *503-12b-9 31 */
"afaualulfarfrafauafuf", /* 14 *703-3e6-3 32 */
"afaufufarafrafalauluf", /* 14 *ba3-b01-c 33 */
"f2rf2laf2rf2lfalauluf", /* 14 *203-b62-a 34 */
"rabr2balbl2b2r", /* 9 *203-107-c 35 */
"2ualabaubul2radr2uardr2ur", /* 16 *013-37e-5 36 */
"abauarurabadb2uabdb2ub", /* 14 *203-b2e-9 37 */
"rbuabauar2ldal2uladal2ual", /* 15 *013-13e-5 38 */
"aflaf2lbalab2l2f", /* 9 *013-7b1-c 39 */
"blualaubadb2uabdb2ub", /* 14 *203-2b6-a 40 */
"afubaufuabr2balablabarau", /* 15 *786-7b1-c 41 */
"urbalbl2barbauafuabauf", /* 15 *8a9-367-6 42 mirr*/
"alurauluarbulaualabu", /* 14 *b46-376-6 43 */
"aublaflf2lablauarualaur", /* 15 *5b9-7b1-c 44 */
"afubaufuabf2rabarbarafau", /* 15 *789-1be-9 45 */
"ufrabrb2rafbauafuabauf", /* 15 *ba6-107-c 46 */
"uafubaufuabf2rabarbaraf", /* 15 *846-107-c 47 */
"frabrb2rafbauafuabaufau", /* 15 *589-1be-9 48 */
"arulauru2farafrafalu", /* 13 *b43-e63-3 49 */
"2uafalablfalb2lfuafaual", /* 14 *5b6-e71-5 50 */
"fauabuafau2rfrafrbau", /* 13 *583-32e-3 51 */
"lufauaf2lablafalblf2u", /* 14 *849-370-6 52 */
"arulaurualf2rabarbarafu", /* 15 *ba6-e21-9 53 */
"aufrabrb2raflauarualaur", /* 15 *789-32e-3 54 */
"afubaufuabl2farafrafalau", /* 15 *589-32e-3 55 */
"ulfarfr2falbauafuabauf", /* 15 *846-e21-9 56 */
"arulaurualaraflafal2fru", /* 15 *b46-e63-3 57 */
"auar2flfalfrlauarualaur", /* 15 *5b9-703-6 58 */
"afubaufuabafalbalab2lfau", /* 15 *786-703-6 59 */
"uaf2lblablfbauafuabauf", /* 15 *8a9-e63-3 60 */
"arulaurualafalbalab2lfu", /* 15 *846-367-6 61 */
"auaf2lblablflauarualaur", /* 15 *589-7b1-c 62 */
"afubaufuabalabrabar2blau", /* 15 *789-7b1-c 63 */
"ual2brbarblbauafuabauf", /* 15 *ba6-367-6 64 */
"2ub2uab2uabrbarlufauafal", /* 15 *8a9-b67-f 65 mirr*/
"lfuafaualrabarb2ub2uab2u", /* 15 *786-7b6-f 66 */
"l2ual2ualblabfurauaraf", /* 14 *5b9-7b6-f 67 */
"fruarauafbalabl2ul2ual", /* 14 *b46-b67-f 68 */
"alabarblabrbfurauaraf", /* 14 *ba9-e26-3 69 */
"2ulfarfr2f2l2ul2ulafalf", /* 15 *7b6-e21-9 70 */
"alblab2uab2u2b2lafalfalab", /* 14 *5b6-367-6 71 */
"blaflf2l2b2ub2ubalabl", /* 14 *849-7b1-c 72 */
"abauarur2blfalablafal", /* 13 *2b9-b2e-9 73 */
"2uaf2uafadf2uafd2frbuabauar", /* 16 *816-317-5 74 */
"alauabub2lfrafalfaraf2u", /* 14 *b19-071-c 75 */
"blaualul2ualauabu", /* 11 *286-2b1-9 76 */
"afubaufuabaf2lblablfau", /* 15 *5b3-e63-3 77 */
"ubauafuabauflufauafal", /* 14 *043-063-6 78 */
"raualuaraulr2balablabaru", /* 15 *b13-32e-3 79 */
"aurbalbl2baralurauluar", /* 15 *2b3-e21-9 80 */
"afubaufu2b2ubuabubau", /* 14 *5b3-130-0 81 */
"uabaubauab2u2bauafuabauf", /* 14 *043-102-0 82 */
"raualuarau2l2ualaulaualu", /* 14 *b13-312-0 83 */
"aulualul2u2lurauluar", /* 14 *2b3-231-0 84 */
"2fdaf2ufadaf2u2f2ufuafuf", /* 15 *5b3-231-0 85 */
"afaufauaf2u2f2ufdaf2ufad2f", /* 15 *043-312-0 86 */
"2radr2uardr2u2r2uaraurauar", /* 15 *b13-102-0 87 */
"ruarur2u2r2uaradr2uard2r", /* 15 *2b3-130-0 88 mirr*/
"2fdaf2ufadaf2uafar2uruarur", /* 16 *5b6-203-0 89 */
"araurauar2urf2ufdaf2ufad2f", /* 16 *849-013-0 90 */
"2rdar2uradar2uarab2ubuabub2u", /* 17 *b19-013-0 91 */
"2uabaubauab2ubr2urdar2urad2r", /* 17 *7b6-203-0 92 */
"2fdaf2ufadaf2uafab2ubuabub", /* 16 *503-320-0 93 */
"abaubauab2ubf2ufdaf2ufad2f", /* 16 *843-021-0 94 */
"2rdar2uradar2uaral2ulualul2u", /* 17 *ba3-021-0 95 */
"2ualaulaual2ulr2urdar2urad2r", /* 17 *703-320-0 96 */
"2fdaf2ufadaf2uafal2ulualul", /* 16 *7b3-130-0 97 */
"alaulaual2ulf2ufdaf2ufad2f", /* 16 *8a3-102-0 98 */
};
char *misc[]={
"aflfal2ual2ul", /* 8 *816-703-6 0 */
"ar2fl2frafalf", /* 8 *2b9-e63-3 1 */
"2uab2ub2ubalabl", /* 9 *b19-1be-9 2 */
"balabl2ul2ual2u", /* 9 *049-7b1-c 3 */
"b2uab2uabrbar", /* 8 *0a6-32e-3 4 */
"rabarb2ub2uab", /* 8 *7b9-e21-9 5 */
"2ul2ual2ualblab", /* 9 *586-367-6 6 */
"2uarfraf2uaf2uf", /* 9 *286-107-c 7 */
"aluraulauar2uarfrafu", /* 13 *7b6-e63-3 8 */
"aufarafr2urualuaraul", /* 13 *ba9-703-6 9 */
"afubaufauab2uabrbarau", /* 13 *849-1be-9 10 */
"urabarb2ubuafuabauf", /* 13 *5b6-107-c 11 */
"alblab2uab2ubar2ur2urabarb2u", /* 17 *813-367-6 12 */
"2uabrbar2uar2urab2ub2ubalabl", /* 17 *283-7b1-c 13 */
"farafr2ur2uarabrbar2uar2ur", /* 16 *503-eb7-f 14 */
"ar2ur2urabarbr2uar2uarfraf", /* 16 *843-eb7-f 15 */
"2ulafalf2uf2uafarfraf2uaf2uf", /* 17 *ba3-eb7-f 16 */
"af2uf2ufarafrf2uaf2uaflfal2u", /* 17 *703-eb7-f 17 */
"ab2ub2ubalablfarafr2ur2uar2u", /* 17 *583-76e-f 18 */
"2ur2uar2uarfrafalblab2uab2ub", /* 17 *b43-76e-f 19 */
"rabarb2ub2uabrabarb2ub2uab", /* 16 *846-32e-3 20 */
"b2uab2uabrbarb2uab2uabrbar", /* 16 *589-e21-9 21 */
"farafr2ur2uarfarafr2ur2uar2u", /* 17 *789-367-6 22 misc*/
"2ur2uar2uarfrafr2uar2uarfraf", /* 17 *ba6-7b1-c 23 */
"afaualulfarfraf2uaf2uf2u", /* 15 *286-e26-3 24 */
"blfalablafalrubauabar", /* 14 *783-1e2-9 25 */
"r2uar2uarfrafarfraf2uaf2uf", /* 16 *8a9-301-0 26 */
"2ul2ualaulaualaflfar2fal2fr", /* 16 *8a9-b01-c 27 */
"f2uaf2uaflfalaflfal2ual2ul2u", /* 17 *5b9-123-0 28 */
"2ual2ul2ulafalflafalf2uf2uaf", /* 17 *b46-123-0 29 */
"rubauab2uar2uarfraf", /* 12 *583-0b2-a 30 */
"farafr2ur2ubuabauar", /* 12 *b43-e37-5 31 */
"furauarafb2uab2uabrbar2u", /* 15 *043-b06-a 32 */
"2urabarb2ub2uabfruarauaf", /* 15 *5b3-b06-a 33 */
"rubauabaralblab2uab2ub", /* 14 *5b9-071-c 34 */
"ab2ub2ubal2baubul", /* 11 *b46-3e1-5 35 */
"bulaualabaflfal2ual2ul2u", /* 15 *8a9-736-6 36 */
"ar2ur2urab2raurub2u", /* 12 *786-62b-a 37 */
"2ulufauaf2uldar2frad2l", /* 14 *283-b12-9 38 */
"2ldar2fradal2ufuafaual2u", /* 14 *813-236-3 39 */
"2uaf2uf2ufarafrafalauluf", /* 15 *b19-b20-a 40 */
"2u2fadb2labdf2ualauluf", /* 14 *783-6e2-3 41 */
"lauarualaurbulaualabu", /* 14 *8a9-1e2-9 42 */
"2ual2ul2ulafal2furauaraf", /* 14 *786-eb2-9 43 */
"bauafuabaufrubauabarau", /* 14 *5b9-63e-3 44 */
"ab2ub2ubalab2lufauafal", /* 13 *b46-0b7-c 45 misc*/
"ab2rf2rbarafrfuafuf2uaf", /* 15 *b46-12b-9 46 */
"", /* duplicate 14 *2b9-317-5 47 */
"furauarafalaululafalf2u", /* 15 *7b6-231-0 48 */
"2uaflfalaualulfruarauaf", /* 15 *ba9-312-0 49 */
"rubauabarafaufufarafr", /* 14 *849-312-0 50 */
"arfrafauafufrbuabauar", /* 14 *5b6-231-0 51 */
"2urubauabarbuflafaufalafab", /* 17 *5b3-e32-3 52 */
"raualuarauabrabar2blu", /* 14 *043-32e-3 53 */
"lufauafalbflafufalafauab", /* 16 *0a6-6be-f 54 */
"buflafaufalafablfuafaual", /* 16 *7b9-6e7-f 55 */
"bulaualabrlbalulabalauar2u", /* 17 *586-e6b-f 56 */
"2urulbalaulabalarblualauab", /* 17 *049-7eb-f 57 */
"2uaf2uf2ufarafrbulaualab", /* 15 *843-b7e-f 58 */
"blualauabarfraf2uaf2uf2u", /* 15 *503-e76-f 59 */
"ar2ur2urabarblufauafal", /* 14 *703-b67-f 60 */
"lfuafaualabrbar2uar2ur", /* 14 *ba3-7b6-f 61 */
"bulaualabfuafauaflfal", /* 14 *813-6e7-f 62 */
"lafalfufauafblualauab", /* 14 *283-6be-f 63 */
"2urubauabuarauarfraf", /* 13 *5b3-e76-f 64 */
"farafruraubuabauar2u", /* 13 *043-b7e-f 65 */
"2uafaualulaufufarafr", /* 13 *b13-7eb-f 66 */
"arfrafauafualauluf2u", /* 13 *2b3-e6b-f 67 */
"alauabublaraururabarb", /* 14 *783-7b6-f 68 misc*/
"abrbarauaruralabaubul", /* 14 *0a3-b67-f 69 */
"lufauafalfarafrurauar", /* 14 *0a6-26e-3 70 */
"ruarauarfraflfuafaual", /* 14 *7b9-710-c 71 */
"abauarurbarfrafauafuf", /* 14 *2b9-26e-3 72 */
"lfauafuf2uafaualau", /* 11 *816-b17-c 73 */
"alauabublabrbarauarur2u", /* 15 *b19-21e-9 74 */
"2uaraururabarbalabaubul", /* 15 *286-21e-9 75 */
"bulaualablafalfufauaf2u", /* 15 *586-760-6 76 */
"2ufuafauaflfalblualauab", /* 15 *049-760-6 77 */
"ar2fl2frafalflualul2ual2u", /* 16 *786-3e6-3 78 */
"", /* 16 duplicate *8a9-b01-c 79 */
"2uruarur2uarabaububalabl", /* 16 *019-3e6-3 80 */
"buabub2uabalaululafalf", /* 15 *2b6-673-6 81 */
"afaufufarafrbulaualab", /* 14 *816-be6-f 82 */
"blualauabarfrafauafuf", /* 14 *2b9-be6-f 83 */
"2uaraururabarblufauafal", /* 15 *286-67b-f 84 */
"lfuafaualabrbarauarur2u", /* 15 *b19-67b-f 85 */
"bulaualulaual2baububalabl", /* 17 *816-2e3-3 86 */
"2ulufauafufauaf2laululafalf", /* 18 *286-607-6 87 */
"lfuafaualafubaufuabau", /* 14 *5b3-7e3-5 88 */
"2urubauabubauabaralaululafalf", /* 19 *7b3-2b1-9 89 */
"lualaualbl2baubauab2ub2u", /* 15 *586-260-a 90 */
"2uab2ubuabu2balablulaual", /* 15 *049-71e-5 91 misc*/
"", /* duplicate 14 *0a6-71e-5 92 */
"al2ulualu2lafalfufauaf", /* 14 *7b9-260-a 93 */
"ual2ul2ulafalfbauafuabauf", /* 16 *586-e21-9 94 */
"2uafau2faraf2rauarbalablulaual", /* 17 *049-317-5 95 */
"fuafauaflfalbu2brb2rur", /* 16 *0a6-b17-c 96 */
"arau2rabar2bauablafalfufauaf", /* 16 *7b9-2b6-a 97 */
"fruarauafraualuaraulu", /* 14 *b13-b20-a 98 */
"b2lafalfalabarfrab2raf2rb", /* 15 *5b9-1be-9 99 */
};
char *sept12[]={
"2fadf2uafdf2ufl2ualaulaual2u", /* 17 *5b6-320-0 0 */
"2ulualul2ualaf2uafadf2uafd2f", /* 17 *849-021-0 1 */
"2radr2uardr2urf2uafaufauaf", /* 16 *ba9-021-0 2 */
"fuafuf2uafar2uaradr2uard2r", /* 16 *7b6-320-0 3 */
"2radr2uardr2url2ualaulaual", /* 16 *ba3-013-0 4 */
"lualul2ualar2uaradr2uard2r", /* 16 *703-203-0 5 */
"2fadf2uafdf2ufb2uabaubauab2u", /* 17 *503-203-0 6 */
"2ubuabub2uabaf2uafadf2uafd2f", /* 17 *843-013-0 7 */
"2radr2uardr2urb2uabaubauab", /* 16 *8a3-312-0 8 */
"buabub2uabar2uaradr2uard2r", /* 16 *7b3-231-0 9 */
"uarulaur2ufauafal", /* 11 *289-2b1-9 10 */
"b2urauluar2ualab", /* 10 *016-b17-c 11 */
"arfraf2uaf2u2furauaraf", /* 13 *583-12b-9 12 */
"rbalbl2baralablafalblf", /* 15 *b43-107-c 13 */
"rblabarbalabaf2lblablf", /* 15 *b43-367-6 14 */
"afalbalab2lfblabrbalabar", /* 15 *583-7b1-c 15 */
"afalablfalblf2rabarbaraf", /* 15 *283-32e-3 16 */
"alablafalblfrubauabar", /* 14 *813-1e2-9 17 */
"araururabar2blaflf2lab", /* 14 *5b6-6e7-f 18 */
"b2lafalfal2brbarauarur", /* 14 *849-6be-f 19 */
"arafalfrafl2f2rabarbaraf2u", /* 15 *ba3-e63-3 20 */
"2ufrabrb2r2falfaraflfr", /* 15 *703-703-6 21 */
"afalablfalb2l2farafrafal", /* 14 *503-703-6 22 sept12*/
"lfarfr2f2lablafalblf", /* 14 *843-e63-3 23 */
"rblabarbal2b2rfrafrb", /* 14 *ba3-e21-9 24 */
"abarfaraf2r2blabrbalabar", /* 14 *703-32e-3 25 */
"frbarafrab2r2flfalfr2u", /* 15 *503-32e-3 26 */
"2uaraflafal2f2rbarfrabaraf", /* 15 *843-e21-9 27 */
"arafalfraflfab2ubuabub2u", /* 16 *049-013-0 28 */
"2uabaubauab2ubafalfaraflfr", /* 16 *586-203-0 29 */
"afalablfalblar2uruarur", /* 15 *7b9-203-0 30 */
"araurauar2uralablafalblf", /* 15 *0a6-013-0 31 */
"fruarauafarfraf2uaf2uf2u", /* 15 *286-130-0 32 */
"2uaf2uf2ufarafrfurauaraf", /* 15 *b19-1b0-0 33 */
"rbuabauarabrbar2uar2ur", /* 14 *816-102-0 34 */
"ar2ur2urabarbrubauabar", /* 14 *2b9-130-0 35 */
"alaulaual2u2lfrafalfaraf", /* 14 *849-102-0 36 */
"fraflfaraf2l2ulualul", /* 14 *5b6-130-0 37 */
"afalablfalb2ulualul", /* 13 *2b6-130-0 38 */
"alaulaual2uablafalblf", /* 13 *019-102-0 39 */
"rblabarbal2uabaubauab", /* 13 *019-312-0 40 */
"buabub2ulabrbalabar", /* 13 *2b6-231-0 41 */
"arafalfraflfabarfaraf2rb2u", /* 16 *ba6-e63-3 42 */
"2uab2rfrafrbafalfaraflfr", /* 16 *789-703-6 43 */
"afalablfalblaraflafal2fr", /* 15 *589-703-6 44 */
"ar2flfalfralablafalblf", /* 15 *846-e63-3 45 sept12*/
"afalablfalrabar2bl", /* 11 *283-1be-9 46 */
"bulaualabraualuaraulu", /* 14 *b13-b17-c 47 */
"lufaualblafalab", /* 10 *0a3-063-6 48 */
"alblabauabubafaufauaf2uf2u", /* 16 *2b6-b70-c 49 */
"afaualulfruarauarfraf", /* 14 *7b6-130-0 50 */
"farafrurauarafalauluf", /* 14 *ba9-102-0 51 */
"balablulau2labrabar2bl2u", /* 15 *ba3-e1b-9 52 */
"2ual2brbarb2lualaualblab", /* 15 *703-20b-a 53 */
"rabarbubau2barfaraf2rb", /* 14 *503-2e3-3 54 */
"lfuafau2labarblabrb", /* 13 *843-7e3-5 55 */
"aflfalaualu2lfarfr2fal", /* 14 *ba3-e26-3 56 */
"l2farafraf2laululafalf", /* 14 *703-b20-a 57 */
"abarbalabrb2lufauafal", /* 13 *503-063-6 58 */
"f2rabarbar2faufufarafr2u", /* 15 *843-e71-5 59 */
"rabarbubauabalabrabar2bl", /* 15 *283-173-5 60 */
"lufauafalab2uabadb2uabd2b", /* 15 *019-063-6 61 */
"2ualaulaual2ulabaububalabl", /* 16 *843-367-6 62 */
"bulaufalablafal", /* 10 *703-b17-c 63 */
"rub2uabaubuabarau", /* 11 *b19-317-5 64 */
"fur2uarauruarafu", /* 11 *2b9-2b6-a 65 */
"ar2fl2frafalfalaulaual2ul2u", /* 16 *203-62e-3 66 */
"ab2uabadb2uabdbaraurub", /* 14 *013-026-a 67 */
"balablulaualabarfaraf2rb2u", /* 16 *ba6-e37-5 68 sept12*/
"2uab2rfrafrblualaualblab", /* 16 *789-0b2-a 69 */
"rabarbubauabaraflafal2fr", /* 15 *589-0b2-a 70 */
"ar2flfalfrbuabauabrbar", /* 15 *846-e37-5 71 */
"balablulaualf2rabarbaraf2u", /* 16 *ba3-e37-5 72 */
"2ufruarau2falablfalbl", /* 14 *703-602-a 73 */
"rabarbubauabl2farafrafal", /* 15 *503-0b2-a 74 */
"lfarfr2falbuabauabrbar", /* 15 *843-e37-5 75 */
"2r2balabl2barbar", /* 9 *013-1be-9 76 */
"af2ufuafufarfrab2raf2rb", /* 15 *203-13e-5 77 */
"rabarbubauabr2balablabar", /* 15 *583-173-5 78 */
"2ufuafuf2u2flfar2fal2fr", /* 15 *013-e32-3 79 */
"aflfalaualulaf2lblablf", /* 15 *b43-62b-a 80 */
"2f2lblab2lfalf", /* 9 *203-367-6 81 */
"rabarbubau2lafalfalab", /* 13 *589-071-c 82 */
"blaflf2luabauabrbar", /* 13 *846-37e-5 83 */
"2ufarafrurau2balablabar", /* 14 *ba6-736-6 84 */
"rbalbl2buarauarfraf2u", /* 14 *789-b62-a 85 */
"abaububalablf2rabarbaraf2u", /* 16 *843-b67-f 86 */
"2ufrabrb2rafalblabauabub", /* 16 *503-7b6-f 87 */
"araururabarbl2farafrafal", /* 15 *703-7b6-f 88 */
"lfarfr2falabrbarauarur", /* 15 *ba3-b67-f 89 */
"balablulau2l2ulualul2u", /* 15 *043-01b-c 90 */
"ab2rfrafrufaubuafau", /* 13 *5b3-e21-9 91 sept12*/
"alblabauabu2b2uabaubauab2u", /* 15 *2b3-b70-c 92 */
"2ubuabub2u2baububalabl", /* 15 *b13-076-6 93 */
"afaualulfbalablulaual2u", /* 15 *049-b01-c 94 */
"bulaual2barafrbarfr2u", /* 14 *586-70b-c 95 */
"balablulaualaf2ufuafuf2u", /* 16 *019-b01-c 96 */
"2uafaufauaf2uflualaualblab", /* 16 *2b6-3e6-3 97 */
"", /* 15 duplicate 043-01b-c 98 */
"2ufuafuf2uafabaububalabl", /* 16 *ba9-1be-9 99 */
};
char *sept19[]={
"2uarafrabarfr2blualauab", /* 14 *049-06b-a 0 */
"lfalblafal2baraurub", /* 13 *816-026-a 1 */
"2ufraflfaraf2labaubul", /* 14 *286-37e-5 2 */
"ru2rfr2fufarfrab2raf2rb", /* 16 *2b9-1e7-5 3 */
"aufauabuaf2uarurb", /* 11 *016-607-6 4 */
"uraualuar2uabubl", /* 11 *289-1b0-c 5 */
"ab2rab2lb2rab2lbaublfruarafal", /* 18 *703-b2e-9 6 */
"lfalblafualauab", /* 10 *ba3-2b6-a 7 */
"2ulualaualblabafalauluf", /* 15 *586-3e6-3 8 */
"rabarb2ub2uabr2urdar2urad2r", /* 17 *049-e21-9 9 */
"b2uab2uabrbrdar2uradar2uar", /* 16 *5b6-32e-3 10 */
"blualubdab2ubad2b", /* 12 *8a3-2b6-a 11 */
"2bdab2ubadabaulaualab", /* 12 *7b3-b17-c 12 */
"lfuaf2uarualaurau", /* 11 *016-037-5 13 */
"bl2uraualuar2uab", /* 10 *289-2b6-a 14 */
"alauabu2blab2uab2ub", /* 11 *5b9-3e1-5 15 */
"2uabauaru2rbar2uar2ur", /* 12 *8a9-62b-a 16 */
"uraualuarau2lufauafal", /* 13 *7b3-063-6 17 */
"fruarauafabarbalabrbl", /* 14 *7b6-b20-a 18 */
"abarbalabrb2lfuafaual", /* 13 *7b9-7e3-5 19 */
"rbuabauarafalablfalbl", /* 14 *283-13e-5 20 */
"lfuafau2lblab2uab2ub", /* 13 *5b9-0b7-c 21 */
"fruarau2flfal2ual2ul2u", /* 14 *8a9-037-6 22 sept19*/
"uraualuarau2lfuafaual", /* 13 *289-7e3-5 23 */
"ubauafuabaufrbuabauar", /* 14 *043-13e-5 24 */
"rubauabaralurauluarau", /* 14 *8a3-1e2-9 25 */
"uraualuaraulrbuabauar", /* 14 *7b3-13e-5 26 */
"aualurauluarblualauab", /* 14 *2b3-2b6-a 27 */
"ar2uaradr2uard2rblualauab", /* 15 *286-2b6-a 28 */
"2u2radr2uardr2urblualauab", /* 16 *019-06b-a 29 */
"2badb2uabdb2ublfuafaual", /* 15 *2b6-7e3-5 30 */
"abarbalabrblrbuabauar", /* 14 *503-13e-5 31 */
"2ul2fl2bal2fl2balfuafaual", /* 15 *849-e71-5 32 */
"2ufurauaraf2l2farafr2falfal", /* 16 *016-e1b-9 33 */
"rubauabar2f2rabarb2rafraf", /* 15 *289-2e3-3 34 sept19*/
};
char *newer[]={
"aufabauarurbuaf", /* 10 *283-2e3-3 0 */
"fauabaraurubafu", /* 10 *813-e13-5 1 */
"uarlufauafalaur", /* 10 *0a3-e26-3 2 */
"arulfuafaualrau", /* 10 *783-b20-a 3 */
"barauafurabarfr", /* 10 *7b3-2e3-3 4 */
"arafrbaraufurab", /* 10 *8a3-e13-5 5 */
"alfurauaflfaraf", /* 10 *8a3-e26-3 6 */
"frafalfuarauafl", /* 10 *7b3-b20-a 7 */
};
char *diag[]=
{
"araurauar2u2rubauabarau", /* 13 *183-71b-c 0 */
"ufruarauaf", /* 7 *403-713-5 1 */
"lufauafalu", /* 7 *403-706-6 2 */
"urbuabau2r2uruarur", /* 13 *183-26b-a 3 */
"rbuab2rfr2fufau", /* 11 *183-213-0 same backwards */
"ul2farafraf2lauabubl", /* 13 *403-67e-f 5 */
"faub2dabuaf2ufaub2dabuafau", /* 16 *103-012-0 6 */
"ufaub2dabuaf2ufaub2dabuaf", /* 16 *103-230-0 7 */
"rubauab2raflafal2frau", /* 13 *a83-b26-a 8 */
"raul2daluaraur2ul2dal2uar", /* 15 *a03-230-0 9 */
"auabaraurublu2lbl2bub", /* 15 *a83-7e6-f 10 */
"uar2flfalf2rbuabauar", /* 13 *4b3-b26-a 11 */
"abau2balab2laualabauarurbu", /* 14 *4b3-b60-f 12 */
"uruaruraubauabar", /* 11 *a89-062-a 13 */
"aulfuafaufuafau2lauabubl", /* 16 *489-1eb-9 14 */
"l2u2lblabl2ualu", /* 10 *183-2e6-3 15 */
"aul2ualbalab2l2ual", /* 10 *183-b10-c 16 */
"uaf2ufuafufalauabubl", /* 14 *a89-1e3-5 17 */
"abauarurbrbalbl2baru", /* 14 *183-0b1-c 18 */
"arauafufru", /* 7 *403-62e-3 19 */
"aur2balablabarabaraurub", /* 14 *183-3e7-5 20 */
"blualaulualaulualauabau", /* 15 *489-230-0 21 */
"afaualul2frabrb2rafu", /* 13 *4b3-1e3-5 22 diag*/
"fraubuabarafu", /* 9 *403-b02-a 23 */
"auf2rabarbar2falauluf", /* 13 *a83-1e3-5 24 */
"aurbuabaubuabau2rauafufr", /* 16 *489-603-6 25 */
"auarafaufuafaufu2rubauabar", /* 16 *489-326-3 26 */
"aualabaubuabaubu2lufauafal", /* 16 *489-b71-c 27 */
"ual2ul2ulafalfabrbal2bar2bl", /* 17 *a03-b76-f 28 */
"l2ual2ualblablauarualaur", /* 15 *103-be2-9 29 */
"abufaubuaflafalf2uf2uaf2u", /* 16 *103-632-3 30 */
"arulaurualbalabl2ul2ual", /* 15 *103-036-6 31 */
"afubaufuabrabarb2ub2uab2u", /* 16 *103-07b-c 32 */
"balablulau2laululafalfau", /* 16 *103-310-0 33 */
"aurauaf2dfuar2urauaf2dfuar", /* 16 *489-012-0 34 */
"uabarbaf2labrb2larfr", /* 13 *403-012-0 35 */
"furauar2f2lblablfu", /* 13 *183-360-6 36 */
"uaflfalaualu2lualaualblab", /* 15 *103-201-0 37 */
"ulfarfr2falrubauabar", /* 14 *a89-b6e-f 38 */
"aur2urdar2urad2rab2ub2ubalabl", /* 18 *a03-07b-c 39 */
"2fdab2rbadaf2uafarulaurual", /* 16 *a89-201-0 40 */
"aualblabauabu2buabauabrbar", /* 16 *103-213-0 41 */
"duplicate", /* 16 *103-102-0 42 */
"auarfrafauafu2fuafauaflfal", /* 16 *103-120-0 43 */
"auar2uaradr2uard2rf2uaf2uaflfal", /* 18 *a03-be2-9 44 */
"fruaraurabrb2rafu", /* 12 *4b3-e12-9 45 diag*/
"uaf2ufuafufarafaufur", /* 14 *a89-b10-c 46 */
"al2ulbaualauluab", /* 10 *403-201-0 47 */
"f2u2fau2fau2f2u2furauarafu", /* 15 *a83-073-6 48 */
"arafrabarfrbfauabuafaub", /* 15 *4b3-230-0 49 */
"abufaubuafabarafrbarfr", /* 15 *a83-012-0 50 */
"auafalbalab2l2fruarauaf", /* 13 *183-7e1-5 51 */
"ur2uaraurau2rafaufur", /* 13 *403-701-c 52 */
"furauarafab2rfrafrbu", /* 14 *a89-1b2-9 53 */
"uar2uruaru2rbuabauar", /* 13 *403-12e-9 54 */
"rubauabaralaulaual2ulau", /* 14 *a83-be2-9 55 */
"ual2ulualuabaubul", /* 12 *4b3-067-6 56 */
"ulualul2ufuafaual", /* 12 *183-be2-9 57 */
"lufauafalabaubauab2ubau", /* 14 *183-603-6 58 diag*/
"uab2ubuabublfuafaual", /* 14 *183-6e3-3 59 */
"lufauaf2ualaulaualau", /* 12 *183-036-6 60 */
"uaraurauar2u2rbuabauar", /* 13 *a89-326-3 61 */
"uruarur2u2rafaufur", /* 13 *a89-603-6 62 */
"furauarafab2ubuabubu", /* 14 *183-e62-3 63 */
"auabaubauab2ubfruarauaf", /* 14 *183-730-6 64 */
"bulaualabar2uruaruru", /* 14 *4b3-b10-c 65 */
"auf2rabarbarurauaraf", /* 12 *a83-23e-3 66 */
"alauabubaulaual2ulau", /* 12 *a83-7b0-c 67 */
"ruarur2uarafalaulufu", /* 14 *4b3-2e6-3 68 */
"fu2flf2labublau", /* 11 *183-120-0 69 */
"araurauarurauar2uafaufuru", /* 16 *a03-e62-3 70 */
"uabauarur2ubuabaubuabub", /* 16 *a03-017-c 71 */
"ul2ualaulualaulaualafalauluf", /* 18 *a03-763-6 72 diag*/
"uafl2fal2ual2ulafarafaufur", /* 16 *489-062-a 73 */
"urubauabaraf2u2fu2fu2f2uaf", /* 16 *489-07b-c 74 */
"fal2dlaf2ufal2dlurauarafu", /* 16 *a03-170-c 75 */
"blualauar2drab2ubar2drabu", /* 16 *a03-b60-a 76 */
"afr2darf2uafr2daraualulfu", /* 16 *a03-2e1-9 77 */
"abaraurul2dalb2uabl2dalbu", /* 16 *a03-26b-a 78 */
};
char *corntwist[]={ /* twist corners & cycle edges */
"araurauar2ur2u", /* 8 *a53-320-0 0 */
"2uar2uruarur", /* 8 *473-021-0 1 */
"2uaraflafal2fr", /* 8 *a53-e21-9 2 */
"ar2flfalfr2u", /* 8 *473-32e-3 3 */
"2uf2uafaufauaf", /* 8 *a53-203-0 4 */
"fuafuf2uaf2u", /* 8 *473-013-0 5 */
"2ub2lafalfalab", /* 8 *a53-e63-3 6 */
"blaflf2lab2u", /* 8 *473-703-6 7 */
"2ubu2brb2rur", /* 9 *a53-623-3 8 */
"arau2rabar2bauab2u", /* 9 *473-623-3 9 */
"rubauabubauabar", /* 10 *a79-13e-5 10 */
"lfuafaufuafaual", /* 10 *a79-063-6 11 */
"blualauabarauafufr2u", /* 13 *473-67b-f 12 */
"2uarafaufurbulaualab", /* 13 *a53-67b-f 13 */
"lualau2f2lbalflafab2l2f", /* 14 *a73-673-6 14 */
"2f2lbfalaflab2l2fulaual", /* 14 *453-673-6 15 */
"2ubal2blbal2bl2urbarab", /* 14 *473-123-0 16 */
"brabar2ual2blabal2blab2u", /* 14 *a53-123-0 17 */
"rubauabarlfuafaual", /* 12 *a79-032-0 18 */
"l2ualaulualaulaual", /* 11 *459-203-0 19 */
"buabubauabub2uab", /* 11 *459-312-0 20 */
"r2uarauruaraurauar", /* 11 *459-130-0 21 */
"fuafufauafuf2uaf", /* 11 *459-021-0 22 corntwist*/
"abaubauabubauab2ub", /* 11 *459-320-0 23 */
"afaufauafufauaf2uf", /* 11 *459-231-0 24 */
"ar2uruarauruarur", /* 11 *459-013-0 25 */
"al2ulualaulualul", /* 11 *459-102-0 26 */
"bulaufauafualulaufauafualab", /* 18 *459-123-0 27 */
"b2u2bau2bauabuabub", /* 11 *a53-301-0 28 */
"afaufauaf2ufabarfaraf2rb", /* 14 *459-21e-9 29 */
"2uruarauarfr2ufdaf2ufad2f", /* 16 *459-602-a 30 */
"abaubauab2ubafalbalab2lf", /* 14 *459-760-6 31 */
"aualf2daflaualf2dafl", /* 12 *a79-301-0 32 */
"abaubaubu2bu2b2uab", /* 11 *473-301-0 33 */
"2rdar2uradar2uabarbubauab2u", /* 16 *459-2b1-9 34 */
"2uaf2ufuafaufuafaufuafuf", /* 16 *153-301-0 35 */
"uraf2uf2uf2rafr", /* 10 *a79-7b1-c 36 */
"2uraf2dfar2uraf2dfar", /* 12 *153-123-0 37 */
"abarbalabrbaladl2ualdl2ul2u", /* 17 *453-301-0 38 */
"2ual2ualadl2ualdlabarblabrb", /* 17 *a73-301-0 39 */
"abr2bar2uar2urab2u", /* 10 *a79-e21-9 40 */
"alblaf2lab2l2f2ufdaf2ufad2f", /* 16 *a53-7b1-c 41 */
"r2uraf2dfar2uraf2df2r", /* 13 *453-123-0 42 */
"2raf2dfar2uraf2dfar2uar", /* 13 *a73-123-0 43 */
"afr2df2radr2uard2raf2darf2u", /* 16 *a79-123-0 44 */
"aflfal2ual2ularaururabarb2u", /* 17 *a53-2b6-a 45 corntwist*/
"2ulfauruaruafaual", /* 11 *473-b01-c 46 */
"alauabublarafaufur", /* 12 *a79-210-0 47 */
"l2ual2ualbl2ubdab2ubad2b", /* 15 *153-1be-9 48 */
"2fdaf2ufadaf2uarafr2ur2uar", /* 15 *153-e63-3 49 */
"afaluabaubauluf2u", /* 11 *a53-b01-c 50 */
"lualaualblab2rdar2uradar2uar", /* 17 *473-2b6-a 51 */
"abaubl2ualabublfuafaual", /* 15 *473-b12-9 52 */
"lualab2ublaualabaraurub", /* 15 *a53-703-6 53 */
"2ur2uar2uarfraf2ldal2uladal2ual", /* 18 *a73-e21-9 54 */
"b2ubdab2ubad2bl2ual2ualblab", /* 17 *453-1be-9 55 */
"arulaurualbuabauabrbarau", /* 16 *a73-2b6-a 56 */
"urabarbubauablauarualaur", /* 16 *453-b17-c 57 */
"frbauabuarafrubauabar", /* 14 *a79-b62-a 58 */
"ul2ual2ualblabraualuaraul", /* 16 *a73-7b1-c 59 */
"frbauabuaraflfuafaual", /* 14 *a79-76e-f 60 */
"2f2rabafrfarb2r2fauarur", /* 14 *453-623-3 61 */
"arauru2f2rabrafarfb2r2f", /* 14 *a73-623-3 62 */
"alauabubauabubl", /* 10 *a79-1e7-5 63 */
"arafaufuafaufur", /* 10 *a79-2e3-3 64 */
"2uafalabublfrau2r2uruarur", /* 17 *473-1e7-5 65 */
"2ublabfuafaubalab", /* 11 *a53-e71-5 66 */
"buabub2uabfrabrb2raf", /* 14 *459-e32-3 67 corntwist*/
"al2brbarblar2uruarur", /* 14 *459-0b7-c 68 */
"blfalablafl2farafr2falfal", /* 16 *153-703-6 69 */
"rabr2balbl2barbarfrabaraf", /* 16 *153-107-c 70 */
"2uab2u2bu2bu2b2uab", /* 10 *a79-231-0 71 */
};
char *(first[4][4])={{"","au","2u","u"},
{"u","","au","2u"},
{"2u","u","","au"},
{"au","2u","u",""}};
/* Labeling used for solving top layer:
* Each side is labeled clockwise. It doesn't matter where you start
* as long as you start in a corner. (Hexadecimal numbers)
*
* side 3
* back
* -------------
* | f | f | c |
* -------------
* | e |or | c |
* ------------- side 4 side 5
* | e | d | d | right bottom
* -------------------------------------------------
* | b | b | 8 | 3 | 3 | 0 | 13| 13| 10| 15| 15| 16|
* ------------------------------------------------
* left | a |gn | 8 | 2 |top| 0 | 12|blu| 10| 14|yel| 16|
* side 2 -------------------------------------------------
* | a | 9 | 9 | 2 | 1 | 1 | 12| 11| 11| 14| 17| 17|
* -------------------------------------------------
* | 7 | 7 | 4 |
* -------------
* | 6 |red| 4 | top is side 0
* ------------- for turning and orienting.
* | 6 | 5 | 5 |
* -------------
* front
* side 1
*
* Cube labeling for middle and last layer:
*
* For codes such as "813-320" the first three indicate the SOURCE of
* the corner belonging in positions 1,2 and 3 respectively. The second
* three indicate the SOURCE of the edge belonging in positions 1,2 & 3.
* When everything is in place the code will be 123-123. "813" means move
* corner piece who's upper color is in box 8 into position 1, 1 into 2 and
* 3 is already where it belongs. In other words use string #10 from the
* array CornerMoves. "320" means cycle three edge pieces counterclockwise
* without twisting them. Use string #1 from EdgeMoves. This way position
* and twist can be denoted by a single digit. This system is for the
* convenience of the computer, not anyone else. It takes up a little less
* memory.
*
* back
* -------------
* | | | |
* -------------
* | c | | a |
* -------------
* | 9 | b | 8 |
* -------------------------------------
* | | 9 | 6 | 3 | 3 | 0 | b | f | |
* -------------------------------------
* left | | | 7 | 2 |top| 0 | e | | | right
* -------------------------------------
* | | 8 | 7 | 2 | 1 | 1 | a | d | |
* -------------------------------------
* | 5 | 6 | 4 |
* -------------
* | 5 | | 4 |
* -------------
* | | | |
* -------------
* front
*/